package com.qidian.buy.config.mqdemo;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.FanoutExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author 戴着假发的程序员
 * @company 起点编程
 * @date 2023/9/15 10:06
 */
@Configuration
public class FanoutRabbitConfig {

    // 配置交换机
    @Bean
    public FanoutExchange fanoutExchange(){
        // 配置交换机
        // 参数1： 交换机的名字
        // 参数2： 是否要持久化存储
        // 参数3： 是否自动删除消息
        return  new FanoutExchange("fanout-exchange",true,false);
    }
    // 配置两个队列
    @Bean
    public Queue fanoutQueueItem(){
        return new Queue("queue-item");
    }
    @Bean
    public Queue fanoutQueueSearch(){
        return new Queue("queue-search");
    }
    // 配置两个绑定对象，用来将队列绑定到交换机
    @Bean
    public Binding bindingItem(){
        // bind 参数：队列
        // to 参数：交换机
        return BindingBuilder.bind(fanoutQueueItem()).to(fanoutExchange());
    }
    @Bean
    public Binding bindingSearch(){
        // bind 参数：队列
        // to 参数：交换机
        return BindingBuilder.bind(fanoutQueueSearch()).to(fanoutExchange());
    }
}
